<template>
	<div>
		<active-element
			:topic-title="activeTopic?.title"
			:text="activeTopic?.fullText"
		></active-element>
		<knowledge-base></knowledge-base>
	</div>
</template>

<script>
export default {
	data() {
		return {
			topics: [
				{
					id: 'basics',
					title: 'The Basics',
					description: 'Core Vue basics you have to know',
					fullText:
						'Vue is a great framework and it has a couple of key concepts: Data binding, events, components and reactivity - that should tell you something!',
				},
				{
					id: 'components',
					title: 'Components',
					description:
						'Components are a core concept for building Vue UIs and apps',
					fullText:
						'With components, you can split logic (and markup) into separate building blocks and then combine those building blocks (and re-use them) to build powerful user interfaces.',
				},
			],
			activeTopic: null,
		};
	},
	// provides data to all the child elements until one injects it (acts as prop wo passing props to middleman componnets)
	// moze bit i provide: ali je onda static data, sama za sebe
	provide() {
		return {
			topics: this.topics,
			selectTopic: this.activateTopic,
		};
	},

	methods: {
		activateTopic(topicId) {
			this.activeTopic = this.topics.find(
				(topic) => topic.id === topicId
			);
		},
	},
	mounted() {
		setTimeout(() => {
			this.topics.push({
				id: 'crypto',
				title: 'The Crypto Investing',
				description: 'Investing before it is too late',
				fullText:
					'Bitcoin is the future of money and it gonna make you and your mom rich',
			});
		}, 3000);
	},
};
</script>

<style>
* {
	box-sizing: border-box;
}
html {
	font-family: sans-serif;
}
body {
	margin: 0;
}
section {
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.26);
	margin: 2rem auto;
	max-width: 40rem;
	padding: 1rem;
	border-radius: 12px;
}

ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	justify-content: center;
}

li {
	border-radius: 12px;
	border: 1px solid #ccc;
	padding: 1rem;
	width: 15rem;
	margin: 0 1rem;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

h2 {
	margin: 0.75rem 0;
	text-align: center;
}

button {
	font: inherit;
	border: 1px solid #c70053;
	background-color: #c70053;
	color: white;
	padding: 0.75rem 2rem;
	border-radius: 30px;
	cursor: pointer;
}

button:hover,
button:active {
	background-color: #e24d8b;
	border-color: #e24d8b;
}
</style>
